'''
首页　详情页面
    我们都是先查询数据库的数据，然后在进行ＨＴＭＬ页面的渲染
    不管是数据库缓存还是ＨＴＭＬ页面的渲染特别是分类渲染比较慢，多少都会影响用户的体验

    最好的体验是
    用户直接就可以访问到经过数据库查询　已经渲染的ＨＴＭＬ页面，写入到指定目录

'''
import time
from utils.goods import get_categories
from apps.contents.models import ContentCategory

def generic_meiduo_index():
    # 这个函数能帮助我们数据库查询　渲染ＨＴＭＬ页面，然后把渲染的ＨＴＭＬ写入到指定文件

    print('%s: generate_static_index_html' % time.ctime())

    # １部分是商品分类数据
    categories = get_categories()

    # ２部分是广告数据
    contents = {}
    content_categories = ContentCategory.objects.all()
    for cat in content_categories:
        contents[cat.key] = cat.content_set.filter(status=True).order_by('sequence')

    # 渲染模板的上下文
    context = {
        'categories': categories,
        'contents': contents,
    }

    # １．加载渲的模板
    from django.template import loader
    index_template = loader.get_template('index.html')

    # ２．把数据给模板
    index_html_data = index_template.render(context)

    # ３．把渲染好的ＨＴＭＬ写入指定文件
    from meiduo_mall import settings
    import os
    file_path = os.path.join(os.path.dirname(settings.BASE_DIR), 'front_end_pc/index.html')
    with open(file_path, 'w', encoding='utf-8') as f:
        f.write(index_html_data)